The proliferation of portable computing devices and wireless networks make it easier than ever for users to obtain access to a network from almost any location. Portable computers, such as laptops, are now sold with multiple network interfaces, providing compatibility with various networking standards.
When a user moves a computer from one network to another, the user may routinely shut down and then restart the same applications. For example, when a user arrives at the office, the user may typically dock his or her laptop computer on a docking station, connect to the office network and then start a number of applications, such as Microsoft Outlook, Message Manager, Secure Shell, and X-Windows. When the user leaves the office at the end of the work day, the user would typically close one or more of these applications, as they cannot work without a network connection. When the user arrives at home, the user might routinely plug the laptop computer back in, then start a Virtual Private Network (VPN) connection to the office network, and restart a number of applications, perhaps including some of the same applications that were used in the office.
A number of techniques have been proposed or suggested for automating such types of computing tasks. Microsoft Windows™, for example, provides the ability to automatically start applications. In addition, Netswitcher™ is a tool that automates the modification of network interface configurations from one network to another. See, for example, http://www.netswitcher.com.
While such existing techniques for automating computing tasks have helped to increase the efficiency of the user's computing experience, there are a number of limitations, which if overcome, could further increase the efficiency and reliability of the user computing experience. In particular, a need still exists for methods and apparatus for automatically learning the applications and configuration settings employed by a user when connected to various networks and automatically configuring the user's computer based on the current network.